ویرانگر یا دِسکتراکتور تابعی است که هنگام از بین بردن شیء از حافظه فراخوانی میشود و وظیفه آزادسازی منابع را دارد.
Exception Handling به فرآیند مدیریت خطاها و استثناها در زمان اجرای برنامه گفته میشود. در برنامهنویسی، خطاها و مشکلاتی که در طول اجرای برنامه پیش میآیند، به عنوان استثنا شناخته میشوند. اگر این استثناها به درستی مدیریت نشوند، میتوانند باعث توقف برنامه یا بروز رفتار غیرمنتظره شوند. Exception Handling به برنامهنویسان این امکان را میدهد که با استثناها بهطور مؤثر برخورد کنند و برنامه را در مواجهه با مشکلات به درستی اجرا کنند.
در بیشتر زبانهای برنامهنویسی مدرن مانند Java، C++ و Python، Exception Handling ابزارهایی مانند try، catch (یا except در Python) و finally را فراهم میکند که به برنامهنویسان این امکان را میدهند که خطاها را شناسایی و مدیریت کنند.
در زبان Java، یک بلوک try-catch برای مدیریت استثناها به کار میرود. بهعنوان مثال:
public class Main {
public static void main(String[] args) {
try {
int result = 10 / 0; // تلاش برای تقسیم بر صفر
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage()); // مدیریت استثنا
} finally {
System.out.println("This will always execute."); // بلاک finally که همیشه اجرا میشود
}
} } در این مثال، کدی که به دنبال آن یک تقسیم بر صفر رخ میدهد، در داخل بلوک try قرار دارد. زمانی که استثنای ArithmeticException رخ میدهد، بلوک catch وارد عمل میشود و پیام خطا را چاپ میکند. همچنین، بلوک finally همیشه اجرا میشود، حتی اگر استثنایی رخ دهد.
در زبان C++ نیز مشابه همین فرآیند برای مدیریت استثناها استفاده میشود:
#include <iostream> using namespace std; int main() {
try {
int result = 10 / 0; // تلاش برای تقسیم بر صفر
} catch (const exception& e) {
cout << "Error: " << e.what() << endl; // مدیریت استثنا
} finally {
cout << "This will always execute." << endl; // بلاک finally
}
return 0; } در اینجا، همانطور که در Java مشاهده کردیم، استثنا در داخل بلوک try مدیریت میشود و در صورت بروز استثنا، بلوک catch وارد عمل میشود.
در زبان Python، از کلمهکلیدی try-except برای مدیریت استثناها استفاده میشود. بهعنوان مثال:
try:
result = 10 / 0 # تلاش برای تقسیم بر صفر except ZeroDivisionError as e:
print("Error:", e) # مدیریت استثنا finally:
print("This will always execute.") # بلاک finally در Python، اگر خطای ZeroDivisionError رخ دهد، بلوک except آن را مدیریت میکند. بلاک finally همیشه اجرا میشود، حتی اگر استثنایی رخ دهد.
در نهایت، Exception Handling ابزاری بسیار مهم در نوشتن کدهای پایدار و امن است. این ویژگی به برنامهنویسان کمک میکند تا برنامههای خود را در برابر خطاها و مشکلات احتمالی مقاوم کنند و اطمینان حاصل کنند که حتی در صورت وقوع استثنا، برنامه بهدرستی به کار خود ادامه میدهد. برای یادگیری بیشتر مفاهیم مشابه و مطالعه مقالات بیشتر، میتوانید از سایت saeidsafaei.ir و مقالات محمد سعید صفایی استفاده کنید.
در این مبحث، به بررسی انواع توابع، شامل توابع کتابخانهای و توابع ساخت کاربر پرداخته میشود و نحوه اعلان، تعریف و استفاده از آنها مورد بحث قرار میگیرد. همچنین، به مفاهیم متغیرهای محلی و توابع محلی، تفاوت آرگومان و پارامتر و نحوه عملکرد تابع اصلی پرداخته خواهد شد. هدف این جلسه، آشنایی با نحوه استفاده از توابع در برنامهنویسی و درک دقیق ارتباطات میان متغیرها و توابع است.
ویرانگر یا دِسکتراکتور تابعی است که هنگام از بین بردن شیء از حافظه فراخوانی میشود و وظیفه آزادسازی منابع را دارد.
تصمیمگیری مبتنی بر داده به استفاده از دادهها برای پشتیبانی و هدایت فرآیندهای تصمیمگیری تجاری اطلاق میشود.
شبیهسازی دوقلو دیجیتال به مدلسازی و شبیهسازی سیستمهای فیزیکی در محیطهای دیجیتال برای پیشبینی رفتارهای آینده گفته میشود.
ساختار شبکهای که با استفاده از STP و BPDU ها به سوئیچها کمک میکند تا یک توپولوژی بدون حلقه ایجاد کنند.
حریم خصوصی دادهها به روشهایی اطلاق میشود که دادههای حساس را از دسترسی غیرمجاز محافظت میکنند.
وسایل نقلیه خودران به خودروهایی گفته میشود که بدون نیاز به راننده انسان حرکت میکنند.
نسخه ششم پروتکل اینترنت که از آدرسهای 128 بیتی برای افزایش ظرفیت آدرسدهی استفاده میکند.
سیستمهای خودمختار به سیستمهایی اطلاق میشود که قادر به انجام وظایف پیچیده بهطور خودکار و بدون نیاز به نظارت انسان هستند.
دستیارهای مجازی نرمافزارهایی هستند که از هوش مصنوعی برای شبیهسازی مکالمات انسانی استفاده میکنند تا به کاربران کمک کنند.
درخت یک ساختار دادهای است که شامل گرهها و پیوندهایی است که به صورت سلسلهمراتبی سازماندهی شدهاند و برای جستجو و ذخیره دادهها استفاده میشود.
زنجیرههای تأمین خودران به شبکههایی اطلاق میشود که قادرند بهطور خودکار فرآیندهای تولید و تأمین را بهینهسازی کنند.
تعریف تابع شامل بدنه تابع است که در آن، منطق اجرای تابع تعیین میشود. در این مرحله، تابع به طور کامل معرفی میشود.
دستگاهی که برای متصل کردن چندین شبکه محلی LAN به یکدیگر استفاده میشود و در لایه دادهلینک (Layer 2) عمل میکند.
بازگشتی زمانی است که یک تابع یا روش، خود را فراخوانی میکند تا زمانی که شرط خاصی به حقیقت بپیوندد.
نشانی عددی که به هر دستگاه متصل به شبکه اختصاص داده میشود تا آن دستگاه در شبکه شناسایی شود.
یادگیری تقویتی (RL) یک نوع یادگیری ماشین است که در آن عامل با انجام اقداماتی در محیط و دریافت بازخورد، یاد میگیرد که چگونه تصمیمات بهتری بگیرد.
پایگاه دادهای که توسط روترها در پروتکلهای Link-State برای ذخیره اطلاعات وضعیت لینکها استفاده میشود.
عملگرهای منطقی برای مقایسه و ارزیابی عبارات منطقی استفاده میشوند و میتوانند نتیجهای درست یا غلط را تولید کنند.
رایانههای هیبریدی که ترکیبی از کامپیوترهای آنالوگ و دیجیتال هستند و توانایی پردازش دادههای پیوسته و گسسته را دارند.
شبکههای عصبی مصنوعی (ANN) به مدلهای ریاضی اشاره دارد که از ساختار مغز انسان الهام گرفتهاند و برای پردازش دادهها استفاده میشوند.
هوش مصنوعی لبه (Edge AI) استفاده از مدلهای یادگیری ماشین و پردازش دادهها را در دستگاههای لبه شبکه (نزدیک به کاربر) تسهیل میکند.
دستگاههای متصل به شبکه که دادهها را ارسال یا دریافت میکنند، مانند کامپیوترها، سرورها، یا سایر تجهیزات شبکه.
تبدیل عدد از مبنای ده به دودویی که از روش تقسیم متوالی برای تقسیم عدد بر 2 و جمعبندی باقیماندهها استفاده میشود.
مدلی سادهتر از OSI که چهار لایه دارد و بهطور گسترده برای ارتباطات اینترنتی استفاده میشود.
یونیکد سیستم کدگذاری است که از آن برای نمایش حروف و نمادهای مختلف زبانها در یک سیستم استفاده میشود.
رایانههای کوچک که میتوانند تعداد کمی از کاربران را به صورت همزمان پشتیبانی کنند و به طور معمول در شرکتها و سازمانهای متوسط استفاده میشوند.
GraphQL یک زبان پرسوجو است که برای دریافت دادهها از یک API استفاده میشود و در مقایسه با REST، انعطافپذیری بیشتری دارد.
پیامی که توسط روترها در پروتکلهای Link-State مانند OSPF و IS-IS برای تبادل اطلاعات وضعیت لینکها استفاده میشود.
ترجمه ماشین عصبی (NMT) از شبکههای عصبی برای ترجمه متون بین زبانها استفاده میکند.
پهپادهای خودمختار به وسایل نقلیه هوایی بدون سرنشین اطلاق میشود که قادر به انجام وظایف خودکار مانند نقشهبرداری و نظارت هستند.
شیوهای برای سازماندهی و ذخیرهسازی دادهها به گونهای که دسترسی به آنها سریعتر و مؤثرتر باشد. انواع مختلفی از ساختار داده مانند آرایهها، لیستهای پیوندی و درختها وجود دارد که هر یک برای مسائل خاصی مناسب هستند.
واقعیت مجازی (VR) تجربهای است که در آن کاربر به طور کامل در یک محیط دیجیتال غوطهور میشود.
بلاکچین یک فناوری است که برای ذخیرهسازی دادهها بهصورت غیرمتمرکز و شفاف استفاده میشود و امکان تبادل اطلاعات بدون نیاز به واسطه را فراهم میکند.
لایهای که مسئول مدیریت نشستها و ارتباطات بین برنامههای کاربردی است.
پروتکلی که هر روتر اطلاعات دقیق درباره توپولوژی شبکه را جمعآوری کرده و بر اساس آن مسیرهای بهینه را محاسبه میکند.